Imports Dia = System.Diagnostics
Imports Gen = System.Collections.Generic
Imports Ref = System.Reflection
Imports Sys = System

Namespace Enhancements.Core.Logging
    Friend NotInheritable Class ___Record

        Friend Sub New(ByVal _unformattedMoment As Sys.DateTime, ByVal _unformattedIdentifier As Sys.Guid, ByVal _unformattedCallingObject As Sys.Object, ByVal _unformattedCallingProcedure As Ref.MethodBase, ByVal _unformattedLevel As Level, ByVal _unformattedProcedureExecutionMoment As ProcedureExecutionMoment, ByVal _unformattedObjects() As Sys.Object)
            ___UnformattedMoment = _unformattedMoment
            ___UnformattedIdentifier = _unformattedIdentifier
            ___UnformattedCallingObject = _unformattedCallingObject
            ___UnformattedCallingProcedure = _unformattedCallingProcedure
            ___UnformattedLevel = _unformattedLevel
            ___UnformattedProcedureExecutionMoment = _unformattedProcedureExecutionMoment
            ___UnformattedObjects = _unformattedObjects
        End Sub

        Private __UnformattedMoment As Sys.DateTime = Sys.DateTime.Now
        Friend Property ___UnformattedMoment() As Sys.DateTime
            Get
                Return __UnformattedMoment
            End Get
            Private Set(ByVal _value As Sys.DateTime)
                __UnformattedMoment = _value
            End Set
        End Property

        Private __UnformattedIdentifier As Sys.Guid = Sys.Guid.NewGuid()
        Friend Property ___UnformattedIdentifier() As Sys.Guid
            Get
                Return __UnformattedIdentifier
            End Get
            Private Set(ByVal _value As Sys.Guid)
                ___Assert.___IsEmptyNot("___UnformattedIdentifier._value", _value, True)

                __UnformattedIdentifier = _value
            End Set
        End Property

        Private __UnformattedCallingObject As Sys.Object = Nothing
        Friend Property ___UnformattedCallingObject() As Sys.Object
            Get
                Return __UnformattedCallingObject
            End Get
            Private Set(ByVal _value As Sys.Object)
                __UnformattedCallingObject = _value
            End Set
        End Property

        Private __UnformattedCallingProcedure As Ref.MethodBase = Nothing
        Friend Property ___UnformattedCallingProcedure() As Ref.MethodBase
            Get
                Return __UnformattedCallingProcedure
            End Get
            Private Set(ByVal _value As Ref.MethodBase)
                ___Assert.___IsNullNot("___UnformattedCallingProcedure._value", _value, True)

                __UnformattedCallingProcedure = _value
            End Set
        End Property

        Private __UnformattedLevel As Level = Level.Off
        Friend Property ___UnformattedLevel() As Level
            Get
                Return __UnformattedLevel
            End Get
            Private Set(ByVal _value As Level)
                __UnformattedLevel = _value
            End Set
        End Property

        Private __UnformattedProcedureExecutionMoment As ProcedureExecutionMoment = ProcedureExecutionMoment.Unspecified
        Friend Property ___UnformattedProcedureExecutionMoment() As ProcedureExecutionMoment
            Get
                Return __UnformattedProcedureExecutionMoment
            End Get
            Private Set(ByVal _value As ProcedureExecutionMoment)
                __UnformattedProcedureExecutionMoment = _value
            End Set
        End Property

        Private __UnformattedObjects() As Sys.Object = CType(Sys.Array.CreateInstance(GetType(Sys.Object), 0), Sys.Object())
        Friend Property ___UnformattedObjects() As Sys.Object()
            Get
                Return __UnformattedObjects
            End Get
            Private Set(ByVal _value As Sys.Object())
                ___Assert.___IsNullNot("___UnformattedObjects._value", _value, True)

                __UnformattedObjects = _value
            End Set
        End Property

        Private __Formatted() As System.Byte = CType(Sys.Array.CreateInstance(GetType(System.Byte), 0), System.Byte())
        Friend Property ___Formatted() As System.Byte()
            Get
                Return __Formatted
            End Get
            Set(ByVal _value As System.Byte())
                ___Assert.___IsNullNot("___Formatted._value", _value, True)

                __Formatted = _value
            End Set
        End Property

    End Class
End Namespace
